home *** CD-ROM | disk | FTP | other *** search
- ;void define_graphics_cursor(pattern,horz_spot,vert_spot);
- ; char *pattern;
- ; unsigned short horz_spot,vert_spot;
-
- EXTRN _memory_model:byte
-
- _TEXT SEGMENT BYTE PUBLIC 'CODE'
- ASSUME CS:_TEXT
- PUBLIC _define_graphics_cursor
- _define_graphics_cursor proc near
- push bp ;save BP
- mov bp,sp ;set stack frame
- cmp _memory_model,0 ;near or far?
- jle begin ;jump if near
- inc bp ;else add 2 to BP
- inc bp ;
- begin: cmp _memory_model,2 ;data near or far?
- jb L1 ;jump if near
- les dx,dword ptr[bp+4] ;point ES:DX to array
- inc bp ;add two to stack pointer
- inc bp ; to compensate for DW ptr
- jmp short L2 ;jump ahead
- L1: mov ax,ds ;DS to ES
- mov es,ax ;
- mov dx,[bp+4] ;point ES:DX to array
- L2: mov bx,[bp+6] ;horizontal hot spot
- mov cx,[bp+8] ;vertical hot spot
- mov ax,9 ;function number
- int 33h ;define the cursor
- pop bp ;restore BP and quit
- cmp _memory_model,0 ;quit
- jle quit ;
- db 0CBh ;RET far
- quit: ret ;RET near
- _define_graphics_cursor ENDP
- _TEXT ENDS
- END